module carryRippleAdder32bits(num1,num2,cin32,cout32,out32);
	input [31:0] num1;
	input [31:0] num2;
	input cin32;
	wire cout1,cout2,cout3,cout4,cout5,cout6,cout7;
	output [31:0] out32;
	output cout32;
	
	carryRippleAdder block1(.in1(num1[3:0]),.in2(num2[3:0]),.cin(cin32),.cout(cout1),.out(out32[3:0]));
	carryRippleAdder block2(.in1(num1[7:4]),.in2(num2[7:4]),.cin(cout1),.cout(cout2),.out(out32[7:4]));
	carryRippleAdder block3(.in1(num1[11:8]),.in2(num2[11:8]),.cin(cout2),.cout(cout3),.out(out32[11:8]));
	carryRippleAdder block4(.in1(num1[15:12]),.in2(num2[15:12]),.cin(cout3),.cout(cout4),.out(out32[15:12]));
	carryRippleAdder block5(.in1(num1[19:16]),.in2(num2[19:16]),.cin(cout4),.cout(cout5),.out(out32[19:16]));
	carryRippleAdder block6(.in1(num1[23:20]),.in2(num2[23:20]),.cin(cout5),.cout(cout6),.out(out32[23:20]));
	carryRippleAdder block7(.in1(num1[27:24]),.in2(num2[27:24]),.cin(cout6),.cout(cout7),.out(out32[27:24]));
	carryRippleAdder block8(.in1(num1[31:28]),.in2(num2[31:28]),.cin(cout7),.cout(cout32),.out(out32[31:28]));
	
endmodule	 